package br.com.naotebuk.dao;

import br.com.naotebuk.modelo.Cargo;
import br.com.naotebuk.modelo.Usuario;
import java.util.List;
import org.springframework.stereotype.Repository;

/**
 *
 * @author giovanni
 */
@Repository
public class UsuarioDao extends NaotebukDao<Usuario> {


    public Usuario validaUsuario(Usuario usuario) throws RuntimeException {
            return (Usuario) em.createNamedQuery("Usuario.logar")
                    .setParameter("login", usuario.getLogin())
                    .setParameter("senha", usuario.getSenha())
                    .getSingleResult();
    }
    
    public Usuario buscaPorEmail(String email){
        return (Usuario) em.createNamedQuery("Usuario.buscaPorEmail")
                .setParameter("email", email)
                .getSingleResult();
    }
    
    public List<Cargo> listarCargos(){
        return em.createNamedQuery("Cargo.listar").getResultList();
    }
    
    public Cargo cargoPorId(Integer id){
        return em.find(Cargo.class, id);
    }

    public List<Usuario> buscarPorNome(String nome){
        return em.createNamedQuery("Usuario.buscaPorNome")
                .setParameter("nome", "%"+nome+"%")
                .getResultList();
    }
}
